<?php

namespace App\Http\Controllers\GarbageCollect;

use App\Models\Garbage\GarbageGoodInfoPic;
use Illuminate\Http\Request;
use Illuminate\Database\QueryException;
use App\Http\Controllers\Controller;
use Validator;
use Illuminate\Support\Facades\Storage;
/**
 * @group  垃圾分类->商品管理->商城管理和新增商品 图片接口
 *
 * 采用 restful api
 *
 * Body Parameters 表示请求的所需要的参数
 *
 * Query Parameters 表示返回参数的名称
 */
class GarbageGoodInfoPicController extends Controller
{
    /**
     * 商品图片添加 删除图片请通过车辆信息修改接口把url设置成null
     * 请使用post  form-data方式传输图片
     *
     * @bodyParam  pk int required 要操作图片的对应的id 外键 对应商品
     * @bodyParam  good_img file required 发票图片
     *
     */
    public function store(Request $request){
        try{
            $e = genValidate();
            $validator = Validator::make($request->all(),$e);
            if($validator->fails()){
                return response()->json(encodeMsg($validator->errors()->messages(),400),400);
            }
           // dd(Request());
            $pk = Request()->input('pk');
            $car=GarbageGoodInfoPic::find($pk);
            if($car == null){
                return response()->json(encodeMsg(["message"=>"未找到该商品"],404),404);
            }
            $file = $request->file('good_img');
            if(!$file->isValid()){
                return response()->json(encodeMsg(["message"=>"文件非法"],400),400);
            }

            $ext = $file->getClientOriginalExtension();
            $realPath = $file->getRealPath();
            $filename = date('Y-m-d-H-i-s') . '-' . uniqid() . '.' . $ext;
            $bool = Storage::disk('local')->put($filename, file_get_contents($realPath));
            if(!$bool){
                return response()->json(encodeMsg(["message"=>"文件存储失败 请联系管理员"],500),500);
            }
            $car->pic_url = $filename;
            $car->save();
            return response()->json($car,201);
        }catch (QueryException $e){
            return response()->json(encodeMsg(["message"=>"添加图片失败"],500),500);
        }
    }
}
